package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.EstadoFacade;
import sv.com.bolsaTrabajo.model.entities.Estado;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class EstadoMB extends ManejadorAccion {

    @EJB
    private EstadoFacade estadoFacade;
    private Estado estado;
    private List<Estado> estados;

    /**
     * Constructor
     */
    public EstadoMB() {
        limpiarEstado();
        estado = new Estado();
    }

    public void limpiarEstado() {
        setEstado(new Estado());
    }

    public List<Estado> getEstados() {
        estados = estadoFacade.obtenerTodos();
        return estados;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear Estado");
            getEstado().setFechaMod(new Date());

            if (estado.getIdEstado() == null) {
                estadoFacade.crear(estado);
                lanzarMensajeInformacion("Exito", "Estado guardada correctamente");
            } else {
                estadoFacade.modificar(estado);
                lanzarMensajeInformacion("Exito", "Estado modificada correctamente");               
            }
            RequestContext.getCurrentInstance().update("IDFrmEstado");
            RequestContext.getCurrentInstance().execute("WVDialogEstado.hide();");
        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Estado", e);
        }
    }

    public void modificarEntidad(Estado modEstado) {
        try {
            this.estado = modEstado;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Estado ", e);

        }
        RequestContext.getCurrentInstance().update("");
    }

    /**
     * ****************** Getters and Setter ********************
     */
    
    public EstadoFacade getEstadoFacade() {
        return estadoFacade;
    }

    public void setEstadoFacade(EstadoFacade estadoFacade) {
        this.estadoFacade = estadoFacade;
    }

    public Estado getEstado() {
        return estado;
    }

    public void setEstado(Estado estado) {
        this.estado = estado;
    }
}
